/*
* Copyright (c) 2025 Huawei Device Co., Ltd.
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including but not limited to the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to provide persons with access to the Software
* subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in all
* copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGE OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
*/

/**
 * 窗口内容需要规避区域的类型枚举。
 */
export enum AvoidAreaType {
  /** TYPE_SYSTEM: 0，表示系统默认区域。通常表示状态栏区域，悬浮窗状态下的应用主窗中表示三点控制栏区域。*/
  TYPE_SYSTEM,
  /** TYPE_CUTOUT: 1，表示刘海屏区域。*/
  TYPE_CUTOUT,
  /** TYPE_SYSTEM_GESTURE: 2，表示手势区域。当前，各设备均无此类型避让区域。*/
  TYPE_SYSTEM_GESTURE,
  /** TYPE_KEYBOARD: 3，表示软键盘区域。*/
  TYPE_KEYBOARD,
  /** TYPE_NAVIGATION_INDICATOR: 4，表示底部导航条区域。*/
  TYPE_NAVIGATION_INDICATOR
}

/**
 * 用于表示窗口规避区的信息。
 */
export interface AvoidAreaInfo {
  type: AvoidAreaType,
  area: AvoidArea
}

/**
 * 窗口内容规避区域。
 */
export interface AvoidArea {
  visible: boolean,
  leftRect: Rect,
  topRect: Rect,
  rightRect: Rect,
  bottomRect: Rect,
}

/**
 * 窗口矩形区域。
 */
export interface Rect {
  left: number,
  top: number,
  width: number,
  height: number,
}